home *** CD-ROM | disk | FTP | other *** search
- colors=210
- stadd=100
- speed=6
- cxstart=$26
- stgap=$222
- stranzahl=5
- strgap=30
- avis=60
- gap=32 ;speed
- color1=$0fff
- color2=$0888
- anzahl=10
- breite=512
- size=40000
- cystart=28
- ygap=1
- xgap=20
- ymenge=280
- xmenge=10
- csize=xmenge*ymenge*8+12
- clsize=2*xmenge*ymenge
-
- begin: lea $dff000,a5
- move.l 4,a6
- jsr -132(a6)
- bsr alloc
- bsr write
- bsr makestripes
- bsr startcopper
- bsr mausi
- move.l 4,a6
- bsr killcopper
- bsr resccopper
- bsr free
- rts
- mausi: btst #6,$bfe001
- bne.s mausi
- rts
- alloc:
- move.l #csize,d0
- moveq #2,d1
- jsr -198(a6)
- move.l d0,cmemory
- move.l #clsize,d0
- clr.l d1
- jsr -198(a6)
- move.l d0,colmemory
- move.l #size,d0
- clr.l d1
- jsr -198(a6)
- move.l d0,memory
- rts
- makestripes:
- move.l memory(pc),a0
- move #anzahl-1,d0
- c3loop:
- move #breite-1,d1
- c1loop:
- move #color1,(a0)+
- dbra d1,c1loop
- move #breite-1,d1
- c2loop:
- move #color2,(a0)+
- dbra d1,c2loop
- dbra d0,c3loop
- rts
- write:
- move.l cmemory(pc),a0
- moveq #cystart,d0
- move #ymenge-1,d4
- cr2loop:
- moveq #cxstart,d1
- moveq #xmenge-1,d3
- crloop:
- move d1,d2
- ori.b #1,d2
- move.b d0,(a0)+
- move.b d2,(a0)+
- move #$fffe,(a0)+
- move #$180,(a0)+
- clr (a0)+
- add.w #xgap,d1
- dbra d3,crloop
- addq.w #ygap,d0
- dbra d4,cr2loop
- move.l #$fffffffe,(a0)+
- rts
- main:
- move.l colmemory(pc),a0
- lea pointer1(pc),a1
- lea addtable(pc),a2
- clr.l d4
- move pointer2(pc),d4
- addq #speed,d4
- andi.w #$1ff,d4
- move d4,pointer2
- bclr #8,d4
- beq.s nosub
- move #$100,d1
- sub d4,d1
- move d1,d4
- nosub:
- add #stadd,d4
- moveq #xmenge-1,d1
- start: clr d0
- move.b (a2)+,d0
- bclr #7,d0
- bne.s pstripe
- bclr #6,d0
- bne.s sub
- bclr #5,d0
- bne.s add
- back:
- dbra d1,start
- bra.s copy
- add:
- bsr.s addr
- bra.s back
- sub:
- bsr.s subr
- bra.s back
- sub1:
- bsr.s subr
- bra.s sback
- add1:
- bsr.s addr
- bra.s sback
- addr:
- clr.l d2
- move (a1),d2
- add d0,d2
- cmp #colors-2,d2
- blo.s noclr
- clr d2
- noclr:
- move d2,(a1)+
- bra.s do_it
- subr:
- clr.l d2
- move (a1),d2
- sub d0,d2
- bpl.s nomove
- move #colors-2,d2
- nomove:
- move d2,(a1)+
- do_it:
- lea colortable(pc),a4
- add.l d2,a4
- move #ymenge/2-1,d2
- do_loop:
- move.l (a4)+,(a0)+
- dbra d2,do_loop
- rts
- pstripe:
- move.l a0,d3
- bclr #5,d0
- bne.s add1
- bclr #6,d0
- bne.s sub1
- clear:
- move #ymenge/2-1,d2
- clloop:
- clr.l (a0)+
- dbra d2,clloop
- sback:
- move.l d3,a0
- add.l d4,a0
- moveq #stmenge/4-1,d2
- lea stable(pc),a4
- csloop:
- move.l (a4)+,(a0)+
- dbra d2,csloop
- move.l d3,a0
- add.l #ymenge*2,a0
- bra.s back
- copy:
- move.l colmemory(pc),a0
- move.l cmemory(pc),a1
- addq.l #6,a1
- move #ymenge-1,d0
- coloop:
- move (a0),(a1)
- addq.l #8,a1
- move ymenge*2(a0),(a1)
- addq.l #8,a1
- move ymenge*4(a0),(a1)
- addq.l #8,a1
- move ymenge*6(a0),(a1)
- addq.l #8,a1
- move ymenge*8(a0),(a1)
- addq.l #8,a1
- move ymenge*10(a0),(a1)
- addq.l #8,a1
- move ymenge*12(a0),(a1)
- addq.l #8,a1
- move ymenge*14(a0),(a1)
- addq.l #8,a1
- move ymenge*16(a0),(a1)
- addq.l #8,a1
- move ymenge*18(a0),(a1)
- addq.l #8,a1
- addq.l #2,a0
- dbra d0,coloop
- rts
- irq: movem.l d0-d7/a0-a6,-(sp)
- move.w $1e(a5),d0
- btst #4,d0
- bne.s itscopper
- bsr main
- ; move #$fff,$180(a5)
- movem.l (sp)+,d0-d7/a0-a6
- irqbase: jmp 0
- itscopper: move.w #$10,$9c(a5); INTREQ-Bit loeschen!
- movem.l (sp)+,d0-d7/a0-a6
- rte
- startcopper:
- move.l $6c,irqbase+2
- move.l #irq,$6c
- move.w #%0000000100000000,$096(a5)
- move.l cmemory,$080(a5)
- ; clr $088(a5)
- rts
- killcopper:
- move.l irqbase+2,$6c
- rts
- free:
- move.l colmemory(pc),a1
- move #clsize,d0
- jsr -210(a6)
- move.l #size,d0
- move.l memory(pc),a1
- jsr -210(a6)
- move.l cmemory(pc),a1
- move #csize,d0
- jmp -210(a6)
- resccopper:
- lea grname(pc),a1
- clr.l d0
- jsr -552(a6)
- move.l d0,a1
- move.l 38(a1),$080(a5)
- ; clr $088(a5)
- jsr -414(a6)
- jsr -138(a6)
- move #%1000001100000000,$096(a5)
- rts
- grname: dc.b "graphics.library",0
- even
- colortable:
- dc.w $001,$002,$003,$004,$005,$006,$007,$008,$009,$00a
- dc.w $00b,$00c,$00d,$00e,$00f
- dc.w $01f,$02f,$03f,$04f,$05f
- dc.w $06f,$07f,$08f,$09f,$0af,$0bf,$0cf,$0df,$0ef,$0ff
- dc.w $0fe,$0fd,$0fc,$0fb,$0fa,$0f9,$0f8,$0f7,$0f6,$0f5
- dc.w $0f4,$0f3,$0f2,$0f1,$0f0,$1f0,$2f0,$3f0,$4f0,$5f0
- dc.w $6f0,$7f0,$8f0,$9f0,$af0,$bf0,$cf0,$df0,$ef0,$ff0
- dc.w $fe0,$fd0,$fc0,$fb0,$fa0,$f90,$f80,$f70,$f60,$f50
- dc.w $f40,$f30,$f20,$f10,$f00,$f01,$f02,$f03,$f04,$f05
- dc.w $f06,$f07,$f08,$f09,$f0a,$f0b,$f0c,$f0d,$f0e,$f0f
- dc.w $e0e,$d0d,$c0c,$b0b,$a0a,$909,$808,$707,$606
- dc.w $505,$404,$303,$202,$101,$000
- colorend:
- dc.w $001,$002,$003,$004,$005,$006,$007,$008,$009,$00a
- dc.w $00b,$00c,$00d,$00e,$00f
- dc.w $01f,$02f,$03f,$04f,$05f
- dc.w $06f,$07f,$08f,$09f,$0af,$0bf,$0cf,$0df,$0ef,$0ff
- dc.w $0fe,$0fd,$0fc,$0fb,$0fa,$0f9,$0f8,$0f7,$0f6,$0f5
- dc.w $0f4,$0f3,$0f2,$0f1,$0f0,$1f0,$2f0,$3f0,$4f0,$5f0
- dc.w $6f0,$7f0,$8f0,$9f0,$af0,$bf0,$cf0,$df0,$ef0,$ff0
- dc.w $fe0,$fd0,$fc0,$fb0,$fa0,$f90,$f80,$f70,$f60,$f50
- dc.w $f40,$f30,$f20,$f10,$f00,$f01,$f02,$f03,$f04,$f05
- dc.w $f06,$f07,$f08,$f09,$f0a,$f0b,$f0c,$f0d,$f0e,$f0f
- dc.w $e0e,$d0d,$c0c,$b0b,$a0a,$909,$808,$707,$606
- dc.w $505,$404,$303,$202,$101,$000
- dc.w $001,$002,$003,$004,$005,$006,$007,$008,$009,$00a
- dc.w $00b,$00c,$00d,$00e,$00f
- dc.w $01f,$02f,$03f,$04f,$05f
- dc.w $06f,$07f,$08f,$09f,$0af,$0bf,$0cf,$0df,$0ef,$0ff
- dc.w $0fe,$0fd,$0fc,$0fb,$0fa,$0f9,$0f8,$0f7,$0f6,$0f5
- dc.w $0f4,$0f3,$0f2,$0f1,$0f0,$1f0,$2f0,$3f0,$4f0,$5f0
- dc.w $6f0,$7f0,$8f0,$9f0,$af0,$bf0,$cf0,$df0,$ef0,$ff0
- dc.w $fe0,$fd0,$fc0,$fb0,$fa0,$f90,$f80,$f70,$f60,$f50
- dc.w $f40,$f30,$f20,$f10,$f00,$f01,$f02,$f03,$f04,$f05
- dc.w $f06,$f07,$f08,$f09,$f0a,$f0b,$f0c,$f0d,$f0e,$f0f
- dc.w $e0e,$d0d,$c0c,$b0b,$a0a,$909,$808,$707,$606
- dc.w $505,$404,$303,$202,$101,$000
- dc.w $001,$002,$003,$004,$005,$006,$007,$008,$009,$00a
- dc.w $00b,$00c,$00d,$00e,$00f
- dc.w $01f,$02f,$03f,$04f,$05f
- dc.w $06f,$07f,$08f,$09f,$0af,$0bf,$0cf,$0df,$0ef,$0ff
- dc.w $0fe,$0fd,$0fc,$0fb,$0fa,$0f9,$0f8,$0f7,$0f6,$0f5
- dc.w $0f4,$0f3,$0f2,$0f1,$0f0,$1f0,$2f0,$3f0,$4f0,$5f0
- dc.w $6f0,$7f0,$8f0,$9f0,$af0,$bf0,$cf0,$df0,$ef0,$ff0
- dc.w $fe0,$fd0,$fc0,$fb0,$fa0,$f90,$f80,$f70,$f60,$f50
- dc.w $f40,$f30,$f20,$f10,$f00,$f01,$f02,$f03,$f04,$f05
- dc.w $f06,$f07,$f08,$f09,$f0a,$f0b,$f0c,$f0d,$f0e,$f0f
- dc.w $e0e,$d0d,$c0c,$b0b,$a0a,$909,$808,$707,$606
- dc.w $505,$404,$303,$202,$101,$000
- colmemory:
- dc.l 0
- cmemory:
- dc.l 0
- pointer1:
- dcb.w 10,0
- pointer2:
- dcb.w 10,0
- addtable:
- dc.b $c4,$a2,$44,$a0,$24,$42,$a0,$22,$a4,$c2
- ;colors=colorend-colortable
- memory: dc.l 0
- stripe:
- dc.w breite*4
- stable:
- dc.w $000,$111,$222,$444,$555,$666,$777,$888,$888,$999,$999
- dc.w $aaa,$aaa,$bbb,$bbb,$ccc,$ccc,$ddd,$ddd,$eee,$eee,$eee
- dc.w $fff,$fff,$fff,$fff,$fff,$eee,$eee,$eee,$ddd,$ddd,$ccc
- dc.w $ccc,$bbb,$bbb,$aaa,$aaa,$999,$999,$888,$888,$777,$666
- dc.w $555,$444,$333,$222,$111,$000
- stend:
- stmenge=stend-stable
-